package com.bra.view;

import android.content.Context;
import android.graphics.Bitmap;
import android.os.Handler;
import android.view.View;
import android.widget.ImageView;

import com.bra.utils.ImageUtil;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

public class ImagerLoaderHelper {
	private static ImagerLoaderHelper imagerLoader;
	private Context context;

	private ImagerLoaderHelper() {
	}

	public static ImagerLoaderHelper getInstance() {
		if (imagerLoader == null) {
			imagerLoader = new ImagerLoaderHelper();
		}
		return imagerLoader;
	}

	public ImagerLoaderHelper(Context context) {
		this.context = context;
		imagerLoader = new ImagerLoaderHelper(context);
	}
	/**
	 * 加载网络使用的options 配置
	 * 
	 * @return
	 */
	public DisplayImageOptions getOptions() {
		DisplayImageOptions options = new DisplayImageOptions.Builder()
		 //.showImageOnLoading(R.drawable.img_native_bg) //加载过程中显示的图片
		 //.showImageForEmptyUri(R.drawable.img_native_bg) // 图片 url为空的时候 显示的图片
		 //.showImageOnFail(R.drawable.img_native_bg) // 加载图片失败显示的图片
		 .resetViewBeforeLoading(false) // 加载图片之前是否重置view
				.delayBeforeLoading(1000) // 延迟 多少毫秒 再加载图片
				.cacheInMemory(true) // 是否缓存在内存中
				.cacheOnDisk(true) // 是否缓存在 sd 卡
				// .preProcessor(null)
				// .postProcessor(...)
				// .extraForDownloader(...)
				.considerExifParams(false) // default
				.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default
				.bitmapConfig(Bitmap.Config.RGB_565) // default
				// .decodingOptions(...)
				.displayer(new SimpleBitmapDisplayer()) // default
				.handler(new Handler()) // default
				.build();
		return options;
	}
	/**
	 * imageloding 的监听 
	 * @param iv_icon_head 
	 * @return
	 */
	public ImageLoadingListener getLister(final ImageView iv_icon_head){
		ImageLoadingListener lister = new ImageLoadingListener() {
			
			@Override
			public void onLoadingStarted(String arg0, View arg1) {
			}
			
			@Override
			public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
			}
			
			@Override
			public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
				//加载成功后将图片变为 圆角
				Bitmap roundedCornerBitmap = ImageUtil.toRoundBitmap(arg2);
				iv_icon_head.setImageBitmap(roundedCornerBitmap);
			}
			@Override
			public void onLoadingCancelled(String arg0, View arg1) {
			}
		};
		return lister;
	}
}
